// interface ISpuItem {
//   spuName: string;
//   spuDesc: string;
//   spuNum: number;
// }
// type ISpuItem = {
//   spuName: string;
//   spuDesc: string;
//   spuNum: number;
// };
// let spuItem: ISpuItem = {};

// type INum = number;
// interface INum = number
// let num: INum = "12";
// 使用interface定义数据类型
// interface IArr {
//   [index: number]: string;
// }

// 1. interface 只能定义引用数据类型，不能定义基本数据类型。而 type 都可以；
// 2. type是为已有的基本类型或引用类型取别名，并没有定义新的类型
// 3. type 声明的类型不能重名，interface 声明的重命名会声明合并；
/*
    4. 两者继承的方法不同；
    ● interface 使用 extends 继承
    ● type 使用 & 关键字
*/

// type INum = number;
// let num: number = 12;

// type ISpuItem = {};
// type ISpuItem = {};
// interface ISpuItem {
//   spuName: string;
//   spuDesc: string;
// }

// interface ISpuItem {
//   spuNum: number;
// }

// let spuItem: ISpuItem = {};

// interface ISpuItem1 {
//   spuName: string;
//   spuDesc: string;
// }

// interface ISpuItem2 extends ISpuItem1 {
//   spuNum: number;
// }
// let spuItem: ISpuItem2 = {};
// type ISpuItem1 = {
//   spuName: string;
//   spuDesc: string;
// };
// type ISpuItem2 = {
//   spuNum: number;
// };
// type ISpuItem3 = ISpuItem1 & ISpuItem2;
// let spuItem: ISpuItem3 = {
//   spuName: "",
//   spuDesc: "",
// };
